package jmine.tec.datadigester.pacoteimportacao.beans;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import jmine.tec.utils.io.ReversibleOutputStream;
import bancosys.tec.datadigester.DigesterBean;

/**
 * Entidade utilizada para armazenar quais sao os arquivos que deve ser processados pelo DataDigester.
 * 
 * @author Rafael Volpato
 */
public class PacoteImportacaoBean implements DigesterBean {

    private List<PacoteImportacaoFile> arquivos;

    /**
     * Construtor.
     */
    public PacoteImportacaoBean() {
        this.arquivos = new ArrayList<PacoteImportacaoFile>();
    }

    /**
     * @return the arquivos
     */
    public List<PacoteImportacaoFile> getArquivos() {
        return this.arquivos;
    }

    /**
     * Adiciona um arquivo que deve ser processado pelo DataDigester.
     * 
     * @param codigo codigo do driver/processor
     * @param filename nome do arquivo
     * @param data data
     * @param async async
     */
    public void addArquivo(String codigo, String filename, ReversibleOutputStream data, boolean async) {
        this.arquivos.add(new PacoteImportacaoFile(codigo, filename, data, async));
    }

    /**
     * @return <code>null</code>
     */
    public Date getDownloadTimestamp() {
        return null;
    }

    /**
     * @return <code>true</code>
     */
    public boolean isComplete() {
        return true;
    }

    /**
     * @return numero de arquivos a ser processado.
     */
    public int getNumberOfItems() {
        return this.arquivos.size();
    }

    /**
     * {@inheritDoc}
     */
    public bancosys.tec.utils.date.Date getFileDate() {
        return null;
    }
}
